package com.jingogo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;

import java.math.BigDecimal;

public interface WalletService {

    /**
     * 钱包充值
     * @param userId 用户ID
     * @param amount 充值金额
     * @param payMethod 支付方式
     */
    void recharge(Long userId, BigDecimal amount, String payMethod);

    /**
     * 钱包提现
     * @param userId 用户ID
     * @param amount 提现金额
     * @param bankCardNumber 银行卡号
     */
    void withdraw(Long userId, BigDecimal amount, String bankCardNumber);

    /**
     * 用户间钱包转账
     * @param fromUserId 转出用户ID
     * @param toUserId 转入用户ID
     * @param amount 转账金额
     * @param remark 备注
     */
    void transfer(Long fromUserId, Long toUserId, BigDecimal amount, String remark);

    /**
     * 查询用户钱包余额
     * @param userId 用户ID
     * @return 钱包余额
     */
    BigDecimal getBalance(Long userId);

    /**
     * 查询用户钱包交易记录
     * @param userId 用户ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 交易记录分页信息
     */
    IPage<?> getTransactionRecord(Long userId, Integer pageNum, Integer pageSize);
}
